import ACCESS_ENUM from '@/access/accessEnum'
/**
 * 检查权限（判断当前登录用户是否具有某个权限）
 * @param loginUser 当前登录用户
 * @param needAccess 需要有的权限
 * @return boolean 有无权限
 */
const checkAccess = (loginUser: any, needAccess = ACCESS_ENUM.NOT_LOGIN) => {
    // 获取当前登录用户具有的权限（如果没有loginUser，则表示未登录）
    const loginUserAccess = loginUser?.userRole ?? ACCESS_ENUM.NOT_LOGIN;
    if (needAccess === ACCESS_ENUM.NOT_LOGIN) {
        return true;
    }
    // 如果具有管理员权限，直接返回true
    if (loginUserAccess === ACCESS_ENUM.ADMIN) {
        return true;
    }
    // 如果用户登录才能访问
    if (needAccess === ACCESS_ENUM.USER) {
        // 如果用户没有登录，那么表示无权限
        if (loginUserAccess === ACCESS_ENUM.NOT_LOGIN) {
            return false;
        }
    }
    // 如果需要管理员权限
    if (needAccess === ACCESS_ENUM.ADMIN) {
        // 如果不为管理员，表示无权限
        if (loginUserAccess !== ACCESS_ENUM.ADMIN) {
            return false;
        }
    }
    // 如果需要会员权限
    if (needAccess === ACCESS_ENUM.VIP) {
        // 如果不为会员，表示无权限
        if (loginUserAccess !== ACCESS_ENUM.VIP) {
            return false;
        }
    }
    return true;
}

export default checkAccess;